/**
 * 
 */
package mm.back.utils;

import java.math.BigDecimal;
import java.util.Collection;

import mm.back.entity.DetalleVenta;

/**
 * @author PUSDERKIS
 *
 */
public class VentasUtils {
	
	/**
	 * Verifica si contiene o no el producto dentro del detalle de la venta.
	 * @param idProducto el id del producto.
	 * @param listDetalle la lista con el detalle.
	 * @return verdadero si contiene el producto.
	 */
	public static boolean containsProduct(long idProducto, Collection<DetalleVenta> listDetalle){
		
		if (listDetalle != null && !listDetalle.isEmpty()){
			for (DetalleVenta dv : listDetalle){
				if (dv.getProducto() != null && dv.getProducto().getId() == idProducto){
					return true;
				}
			}
		}
		
		return false;
	}
	
	/**
	 * obtiene el total a de la suma de todos los productos.
	 * @param listDetalle el listado con el detalle de la venta.
	 * @return
	 */
	public static BigDecimal total(Collection<DetalleVenta> listDetalle){
		
		BigDecimal suma = BigDecimal.ZERO;
		
		if (listDetalle != null && !listDetalle.isEmpty()){
			for (DetalleVenta dv : listDetalle){
				suma = dv.getPrecioVenta().multiply(dv.getCantidad()).add(suma);
			}
		}
		
		return suma;
	}
	
	/**
	 * Borra el producto de la lista.
	 * @param idProducto el id del producto a borrar.
	 * @param listDetalle la lista.
	 * @return si lo borro
	 */
	public static boolean borrarProducto(long idProducto, Collection<DetalleVenta> listDetalle){
		
		if (listDetalle != null && !listDetalle.isEmpty()){
			for (DetalleVenta dv : listDetalle){
				if (dv.getProducto() != null && dv.getProducto().getId() == idProducto){
					listDetalle.remove(dv);
					return true;
				}
			}
		}
		
		return false;
	}

}
